package com.ilxqx.framework.security.util;

import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;

import java.util.UUID;

/**
 * key生成工具类
 * @author venus
 */
public final class KeyUtils {

    /**
     * 生成key所需要的混合字符串
     */
    private static final String STRING_KEY = "VENUS";

    /**
     * 生成访问key
     * @param ip IP地址
     * @param userAgent 用户浏览器环境
     * @return key
     */
    public static String generateAccessKey(String ip, String userAgent) {
        return DigestUtils.md5Hex(ip + STRING_KEY + userAgent);
    }

    /**
     * 验证key是否正确
     * @param ip IP地址
     * @param userAgent 用户浏览器环境
     * @param key 请求中的key
     * @return 验证结果（bool）
     */
    public static boolean match(String ip, String userAgent, String key) {
        return StringUtils.equals(KeyUtils.generateAccessKey(ip, userAgent), key);
    }

    /// 自定义生成UUID
    /*public static String generateUUID() {
        long timestamp = System.currentTimeMillis();
        return Long.toString(timestamp, 36) + RandomStringUtils.randomAlphanumeric(24);
    }*/

    @NotNull
    public static String generateUUID() {
        return UUID.randomUUID().toString();
    }

}
